Session Initiation Protocol (SIP) is an application-layer control protocol for transporting call setup, routing authentication and other feature messages to endpoints within the IP domain, whether those messages originate from outside the IP cloud over PSTN resources or within the cloud. These sessions include Internet multimedia conferences, Internet telephone calls, and multimedia distribution. Members in a session can communicate via multicast, via a mesh of unicast relations, or a combination of these. SIP can be used to initiate sessions as well as invite members to sessions that have been advertised and established by other means.
SIP is a text-based protocol that uses the ISO 10646 character set in UTF-8 encoding. A SIP message is either a request from a client to a server or a response from a server to a client. Both of these types of messages contain a start line, one or more header fields, or “headers”, an empty line indicating the end of the header fields, and an optional message body.
In processing a SIP message, different SIP message headers have different characteristics with respect to the frequency of occurrence in SIP messages. Some headers, such as a “To” header, are generic headers that appear only once while other headers, such as “Via” headers, are generic headers that can appear any number of times. The “Via” headers, for example, provide information pertaining to the route through which a SIP communication must pass between SIP clients.
Headers, such as “CallerID”, “To”, and “From” headers are essential for establishing the context of the SIP message. However, from the viewpoint of an application program, maintaining other context and state information related to a session, such as storing a long sequence of Via headers, detracts from the essential task of providing a distributed application with particular functionality.
Therefore, it would be advantageous to have an apparatus and method for managing application non-essential information, such as routing information. It would further be advantageous to have an apparatus and method that presents an application program with a simplified SIP environment.